-- local v3 = require("cc").v3

local BattleConst = {}

BattleConst.CLIENT_FPS = 60
BattleConst.CLIENT_FRAME_INTERVAL_S = 1 / BattleConst.CLIENT_FPS
BattleConst.SERVER_KEY_FPS = 10
BattleConst.GAME_RUNNING_TIME_SCALE = 1.5
BattleConst.MAX_ACC_RATE = 2
BattleConst.ACC_SERVER_KEY_FPS = BattleConst.SERVER_KEY_FPS * BattleConst.MAX_ACC_RATE
BattleConst.SERVER_KEY_FRAME_INTERVAL_MS = 1000 / BattleConst.SERVER_KEY_FPS * BattleConst.GAME_RUNNING_TIME_SCALE
BattleConst.BULLET_NORMAL_SPEED = 500 * BattleConst.GAME_RUNNING_TIME_SCALE
BattleConst.GAME_RUNNING_TIME_S = 1 / BattleConst.GAME_RUNNING_TIME_SCALE
BattleConst.GAME_ATTR_TIME_SCALE = 1.3
BattleConst.GAME_ATTR_TIME_S = 0.2
BattleConst.GAME_ATTR_TIME_COLOR_S = 0.5
BattleConst.MINI_SERVER_KEY_FRAME_INTERVAL_S = 0.1
BattleConst.MAX_KEY_FRAME_OFFSET = 20
BattleConst.MAX_ERROR_MONSTER_DISTANCE = 5
BattleConst.FIX_DISTANCE_RATE_PERFRAME = 0.1
BattleConst.FIGHTER_GROUP_CAPCITY = 3
BattleConst.BATTLE_ATTR_VALUE_RATE = 100
BattleConst.BATTLE_RATE = 10000
BattleConst.MONSTER_TIPS_RATE = 0.7
BattleConst.FUBEN_POSINDEX_BEGIN = 100

BattleConst.BattleOverReason = {
    FORCE = 0,
    ERROR = 1,
    BOSS = 2,
    MONSTER = 3,
    WIN = 4,
    TIME_OUT = 5
}

BattleConst.BattleObjType = {
    None = 0,
    Fighter = 1,
    Monster = 2,
    Bullet = 3,
    Global = 4,
    Creature = 5,
    Buff = 6,
    ClientBegin = 1000,
    FloatText = 1001,
    MonsterHp = 1002,
    FighterGroup = 1003
}

BattleConst.AttrTypeClientHandleType = {
    DefaultRate10000 = 1,
    HandleValue = 2
}

BattleConst.BattleSceneType = {
    Fuben = 1
}

BattleConst.AttrType = {
    NONE = 0,
    ATTACK = 1,
    HP = 2,
    MAX_HP = 3,
    MOVE_SPEED = 4,
    ATTACK_SPEED = 5,
    SKILL_DMG = 12,
    CONTROL = 16,
    MP = 17,
    MAX_MP = 22,
    STUN_TIME_DEC = 27,
    MAX_HP_PER_DMG_RESIST = 28,
    PASSIVE_RESIST = 29,
    REGEN = 19,
    ARP = 24,
    PASSIVATE = 25,
    ATK_ADD_RATE = 101,
    ATK_GLOBAL = 102,
    ATK_SPEED_ADD_RATE = 105,
    ATK_SPEED_GLOBAL = 106
}

BattleConst.StageType = {
    MONSTER = 0,
    PREPARE = 1,
    CHOOSE = 2
}

BattleConst.ActorAddReason = {
    BORN_REASON_NORMAL = 0,
    BORN_REASON_CALL = 1,
    BORN_REASON_TRANS = 2,
    BORN_REASON_BET = 3,
    BORN_REASON_SYNTHETIC = 4,
    BORN_REASON_SELECT = 5,
    BORN_REASON_CALL_ELITE = 6,
    BORN_REASON_SYNTHETIC_MYTHIC = 7,
    BORN_REASON_CURSE_CALL = 8,
    BORN_REASON_RELIC_BET = 9
}

BattleConst.ActorRemoveReason = {
    NORMAL = 0,
    SYNTHETIC = 1,
    SALE = 2,
    TRANS_FAIL = 11,
    F_1004_COST = 7,
    F_5001_KILL = 9,
    F_5015_KILL = 10
}

BattleConst.BuffType = {
    CLIENT_F_5015_NUM = "client_f_5015_num"
}

BattleConst.BetReason = {
    NONE = 0,
    SUCCESS = 1,
    FAIL = 2
}

BattleConst.PlayerStatus = {
    NONE = 0,
    ONLINE = 1,
    OFFLINE = 2
}

BattleConst.ActorAnimationName = {
    ATK = "atk",
    IDLE = "idle",
    MOVE = "move",
    DIE = "death"
}

BattleConst.FighterId = {
    F_5004 = "f_5004",
    F_5015 = "f_5015",
    F_5001 = "f_5001",
    F_5011 = "f_5011",
    F_5012 = "f_5012",
    F_5010 = "f_5010",
    F_9001 = "f_9001",
    F_9002 = "f_9002",
    F_9004 = "f_9004"
}

BattleConst.FighterOperateType = {
    COST_NORMAL = 1,
    COST_FIGHTER = 2,
    COST_NORMAL_UPGRADE_SKILL = 3,
    COST_RATE = 4,
    COST_SERVER_DATA = 5
}

BattleConst.BulletId = {
    F_5003_1 = "bullet_0032",
    F_5003_2 = "bullet_0033"
}

BattleConst.BulletType = {
    BASE = 1,
    CREATURE = 2,
    RAY = 3,
    BOOM = 4
}

BattleConst.SelectType = {
    FIXED = 0,
    BET = 1
}

BattleConst.ResourceType = {
    None = "",
    Food = "food",
    LuckCoin = "luck_coin",
    Pupulation = "popu",
    PupulationLimit = "popu_limit",
    Monster = "monster",
    MonsterLimit = "monster_limit"
}

BattleConst.ResourceName = {
    [BattleConst.ResourceType.Food] = "硬币",
    [BattleConst.ResourceType.LuckCoin] = "幸运币"
}

BattleConst.ResourceColorStr = {
    [BattleConst.ResourceType.Food] = "ffae10",
    [BattleConst.ResourceType.LuckCoin] = "0effe0"
}

BattleConst.ResourceChangeReason = {
    NONE = 0,
    RESOURCE_ADD_COMMON = 1,
    RESOURCE_ADD_SALE = 2,
    RESOURCE_ADD_KILL_MONSTER = 3,
    RESOURCE_ADD_SKILL = 4,
    RESOURCE_ADD_KILL_BOSS = 5,
    RESOURCE_ADD_KILL_QUICK = 6,
    RESOURCE_ADD_KILL_ELITE_MONSTER = 7,
    RESOURCE_ADD_WAVE_SELECT_REPLACE = 8,
    RESOURCE_ADD_MONSTER_MUTATION = 9,
    RESOURCE_ADD_MISSION = 10,
    RESOURCE_ADD_RELIC = 11,
    RESOURCE_ADD_FUBEN = 12,
    RESOURCE_ADD_FUBEN_EXTRA = 13
}

BattleConst.EnhanceType = {
    None = 0,
    NormalRare = 1,
    Epic = 2,
    LegendMythic = 3,
    CallRate = 4
}

BattleConst.BattleRoundStage = {
    DEPLOY = 1,
    FIGHT = 2
}

BattleConst.NewbieOpAction = {
    NONE = 0,
    CALL = 1,
    MERGE = 2,
    BET = 3,
    SYNTHETIC = 4,
    MOVE = 5,
    ENHANCE = 6
}

BattleConst.BattleType = {
    NONE = 0,
    COOP = 1,
    COOP_HARD = 2,
    CIRCLE = 3,
    PVP = 10,
    NEWBIE = 9000
}

BattleConst.DamageType = {
    NONE = 0,
    PHYSIC = 1,
    MAGIC = 2
}

BattleConst.CreatureType = {
    NONE = 0
}

BattleConst.MonsterType = {
    NONE = 0,
    NORMAL = 1,
    ELITE = 2,
    BOSS = 3,
    FUBEN_BOSS = 4
}

BattleConst.SkillEffDeltaPos = {
    -- battle_monster_stun = v3(0, 6, 0),
    -- battle_f_3003_effect_1 = v3(0, -14, 0)
}

BattleConst.EffectId = {
    e_10050201 = "e_10050201",
    e_10050301 = "e_10050301"
}

BattleConst.SkillId = {
    sk_100503 = "sk_100503",
    sk_300201 = "sk_300201",
    sk_300404 = "sk_300404",
    sk_300405 = "sk_300405",
    sk_500306 = "sk_500306",
    sk_501009 = "sk_501009",
    sk_500403 = "sk_500403",
    sk_500404 = "sk_500404",
    sk_900201 = "sk_900201",
    sk_900206 = "sk_900206",
    sk_900207 = "sk_900207",
    sk_500102 = "sk_500102",
    sk_500103 = "sk_500103",
    sk_500706 = "sk_500706",
    sk_500204 = "sk_500204",
    sk_500205 = "sk_500205",
    sk_900101 = "sk_900101",
    sk_900103 = "sk_900103",
    sk_501403 = "sk_501403",
    sk_501404 = "sk_501404"
}

BattleConst.SkillType = {
    NORMAL = 0,
    PASSIVE = 1,
    ACTIVE = 2,
    ULTIMATE = 3
}

BattleConst.SkillTypeString = {
    [BattleConst.SkillType.NORMAL] = "普攻",
    [BattleConst.SkillType.PASSIVE] = "被动",
    [BattleConst.SkillType.ACTIVE] = "主动",
    [BattleConst.SkillType.ULTIMATE] = "终极"
}

BattleConst.FloatTextType = {
    Physic = 0,
    Magic = 1,
    PhysicCrit = 2,
    MagicCrit = 3
}

BattleConst.BattleServerLoginReturnCode = {
    NONE = 0
}

BattleConst.CmdType = {
    CmdKeyFrameBegin = "CmdKeyFrameBegin",
    CmdKeyFrameEnd = "CmdKeyFrameEnd",
    CmdWaveBegin = "CmdWaveBegin",
    CmdWaveSelect = "CmdWaveSelect",
    CmdWaveEnd = "CmdWaveEnd",
    CmdWaveStage = "CmdWaveStage",
    CmdFightFighterMove = "CmdFightFighterMove",
    CmdFightFighterJoin = "CmdFightFighterJoin",
    CmdFightFighterTeleport = "CmdFightFighterTeleport",
    CmdFightActorAdd = "CmdFightActorAdd",
    CmdFightActorAttrs = "CmdFightActorAttrs",
    CmdFightActorRemove = "CmdFightActorRemove",
    CmdFightActorsDistance = "CmdFightActorsDistance",
    CmdFightBuffAdd = "CmdFightBuffAdd",
    CmdFightBuffUpdate = "CmdFightBuffUpdate",
    CmdFightBuffRemove = "CmdFightBuffRemove",
    CmdFightCreateBullet = "CmdFightCreateBullet",
    CmdFightSkill = "CmdFightSkill",
    CmdFightHitDmg = "CmdFightHitDmg",
    CmdFightEffect = "CmdFightEffect",
    CmdNewbieOp = "CmdNewbieOp"
}

BattleConst.BattleSide = {
    None = 0,
    First = 1,
    Second = 2
}

return BattleConst